package conversion.utils;

import org.mindrot.jbcrypt.BCrypt;

/**
 * 使用BCrypt库对密码进行哈希加密的工具类。
 */
public class PasswordUtils {
    private static final int BCRYPT_COST = 12;

    /**
     * 使用BCrypt库对密码进行哈希加密。
     *
     * @param password 原始密码
     * @return 加密后的密码哈希值
     */
    public static String hashPassword(String password) {
        // 生成随机盐值，并使用指定的成本因子对密码进行哈希加密
        String hashedPassword = BCrypt.hashpw(password, BCrypt.gensalt(BCRYPT_COST));
        return hashedPassword;
    }

    /**
     * 验证密码是否与哈希值匹配。
     *
     * @param password 原始密码
     * @param hashedPassword 加密后的密码哈希值
     * @return 密码验证结果（true表示匹配，false表示不匹配）
     */
    public static boolean verifyPassword(String password, String hashedPassword) {
        // 检查密码与哈希值是否匹配
        boolean result = BCrypt.checkpw(password, hashedPassword);
        return result;
    }
}